摘要

本文提出了一个全新的追踪器,通过由深度增强学习得到的动作来控制。和现有的其他使用深度网络的追踪器不同,该追踪器的计算量很小,并且在位置和尺度上的精度都很高。来控制action的深度网络使用各种训练序列进行预训练,并在追踪过程中进行微调,以适应目标和背景的变化。预训练过程既利用了深度增强学习,还利用了监督学习。增强学习能够成功地利用那些部分标注数据进行半监督学习。在OTB测试中,本追踪器能够达到一个非常有竞争力的performance,同时比那些基于深度网络的最新的算法快三倍,能够在GPU上达到实时。

Introduction

传统追踪算法使用low-level handcraft的特征,计算高效,performance也还可以,但是在应对多种干扰挑战时还是受限制于特征表达的不足。

使用CNN的追踪算法试图提升特征表达。有些利用ImageNet离线训练CNN。但是由于分类和追踪问题之间的gap,预训练的CNN往往不能很好的应对困难的场景。Nam等人的MDNet利用追踪视频训练CNN,基于tracking-bydetection的框架,performance非常的好,但是这种方法通常关注于使用外观模型提升区分背景和目标的能力,可能会忽视如下问题:

  • 低效率的搜索算法,探索感兴趣区域并选择和目标模型匹配最佳的候选patch
  • 需要大量标注追踪序列进行训练,并且无法以半监督的方式利用无标注帧

本文提出ADNet(action-decision network)。ADNet被设计为,生成actions来寻找新的一帧中目标的location和size。ADNet学习一个policy:从当前位置的状态出发,选择最优的actions来跟住目标。

basic_concept

ADNet中,policy network被设计为卷积神经网络的形式,输入是上个状态中目标所在位置处的image patch,输出是actions(包含平移和缩放)的概率分布。这种action-selecting过程,比划窗或候选采样的方法计算量小得多。

我们还提出了一种监督学习(SL)和增强学习(RL)的结合学习算法来训练ADNet。SL阶段,我们使用从训练视频提取的样本来训练网络,选择actions实现对目标位置的追踪。这一步中,网络学习追踪一个通用的目标,而没有连续性的信息。RL阶段把SL阶段训练好的网络作为初始网络。我们使用由采样states、actions和rewards组成的训练序列,模拟追踪过程,进行增强学习。

Visual Object Tracking

主要介绍近年目标跟踪领域的一些新算法和发展趋势,相关滤波以及深度学习。

Deep Reinforcement Learning

RL的目标是学习一个policy:通过最大化累积未来rewards,决定一系列actions。RL领域近年的趋势是使用深度神经网络表达value function或policy之类的RL模型。通过采用深度特征,如Atari游戏、AlphaGo等困难的问题可以通过半监督学习的方式得到很好的解决。除此之外,还有一些深度RL方法被用来解决计算机视觉问题,例如目标定位和行为识别。

深度RL算法领域现在主要有两种流行的思路:Deep Q Network(DQN)和policy gradient。DQN是Q-learning的一种特殊形式,采用深度神经网络作为函数逼近器。DQN的目标是通过最小化时序差分误差(temporal-difference errors),学习一个由深度网络表示的state-action值函数(Q)。基于DQN算法,如Double DQN和DDQN等多种多样的网络结构被提出来,以改进performance和保持稳定。

Policy gradient方法使用梯度下降法优化与预期未来reward相关的深度Policy Network,来直接学习到一个policy。Williams等人提出REINFORCE算法,仅使用即时reward来估计policy的数值。Silver等人提出一个确定性(deterministic)的算法来改善高维action空间下policy gradient的performance和effectiveness。Silver的另一篇工作表明在应用policy gradient之前使用监督学习预训练policy network,可以提高performance。在追踪问题中,我们使用监督学习训练本文提出的网络,来学习目标对象的外观特点,并使用增强学习的policy gradient方法来训练目标对象的动作变化。

Tracking Scheme Controlled by Actions

Overview

通过由ADNet预测产生的一系列动作,本文提出的追踪器能够动态地跟随住目标。从当前位置开始,ADNet预测一个action;在执行之后,再次进行预测。如此迭代,直到ADNet产生“停止”。

ADNetwork_architecture

Problem Settings

本文跟踪策略遵循Markov Decision Process(MDP)。MDP定义为states $s \in {\cal S}$,actions $a \in {\cal A}$,状态转移函数 $s’ = f(s,a)$,以及reward $r(s,a)$。在MDP设想下,追踪器被定义为一个agent,其目标为使用一个包围框捕捉到目标。

在每一帧中,agent进行一系列actions直到找到目标的位置,然后进入下一帧。state表达包括bounding box中的图像信息和之前的actions。通过判定是否成功跟踪,agent会在第$l$帧的最后状态时得到一个reward。state和action分别记作$s_{t,l}$和$a_{t,l}$,其中$t = 1,…,T_l$,$l = 1,…,L$,$T_l$为第$l$帧的终结步骤,$L$表示视频的长度。第$l$帧的终结状态会作为下一帧的开始,即$s_{1,l+1} := s_{T_l,l}$。

Action

action space包含十一种action,包括平移、缩放和停止。平移包括上下左右四个方向,每个方向有两种步长。尺度缩放包括两种类型,即放大和缩小。每次action都以一个11维的one-hot向量(one-hot表示只有一个1,其余为0)

action_space

State

state $s_t$被定义为一个元组$(p_t,d_t)$,这里$p_t \in R^{112\times112\times3}$表示bounding box中的图像patch,$d_t \in R^110$表示action dynamics vector,包含了$t$时刻的之前$k$个actions(这里设$k=10$)。$p_t$由一个四维向量指定,$b_t = [x^(t),y^(t),w^(t),h^(t)]$,分别表示包围框的中心坐标和宽高。在任意一帧图像$F$中:
$$p_t = \phi(b_t,F)$$

这里的$\phi$表示对patch的预处理函数。

State transition function

agent在state $s_t$下做出action $a_t$之后,状态转移函数将给出下一个state $s_{t+1}$。

Reward

reward函数被定义为$r(s)$。在某一帧的多次迭代过程中,reward始终等于零。在终结的时刻$T$,$a_t$为‘stop’时,reward为:

reward

Action-Decision Network

网络结构如图2。

Training of ADNet

ADNet的训练分成三个阶段,监督学习、增强学习和在线更新。

Supervised Learning

在监督学习阶段,action dynamics vector被置零。通过对ground truth框加高斯噪声,得到样本patch,对应的action label就应该等于使得patch移动后和groundtruth重叠率最大的那个action:

action_select

每个样本patch的类别判定为,如果和ground truth的IoU大于0.7则记为正样本,反之则记为负样本。

一个training batch由一些随机选择的训练样本组成,每个样本包含一个patch,一个action和一个class label。

ADNet通过随机梯度下降法来最小化多任务损失函数:

loss

这里m表示batch size,L表示交叉熵损失,上尖号表示ADNet的估计值。

Reinforcement Learning

RL阶段训练除fc7之外所有的参数。使用RL来训练ADNet的目的是通过policy gradient方法来改进该网络。初始RL网络的参数继承之前SL训练的结果。action dynamics $d_t$通过以先进先出的方式累积最近的$k$个actions进行更新。由于RL的目的是学习state-action policy,所以我们忽略了fc7的可信度层。对于一个训练序列,模拟跟踪过程,判断每一个标注帧的跟踪结果是否正确,如果正确,得分$z_{t,l} = r(s_{T_l},l) = 1$,反之-1。通过这些得分,使用随机梯度上升最大化得分来更新网络参数:

update_of_Wrl

有一些视频数据中,只有部分帧拥有标注信息,而ADNet通过半监督学习的办法来利用这些数据。如下图所示,红色和蓝色框分别表示groundtruth和跟踪结果。该序列中,只有第160、190、220帧有标注信息。190帧reward为+1,220帧为-1。我们把相邻两个标注帧之间的序列看做一个整体过程,这样后一个标注帧的结果就作为这个过程中所有帧的reward。

semi-supervised_learning

Online Adaptation in Tracking

跟踪过程中进行在线更新有助于跟踪算法更鲁邦地应对目标外观变化。在更新ADNet时,固定卷积层参数不变,fine-tune全卷积层。这是因为卷积层关注更通用的追踪信息,而全连接层拥有的是video-specific的知识。在线更新采用的是监督学习的方式。

Experiment

结果自然是state-of-art,图就不贴了,论文里很详细,项目主页里面的demo也令人印象深刻。在NVIDIA TITAN X上可以做到3fps,fast版本可以达到15fps,感觉还是有提升空间。非常值得关注的work。